<?php

class Membro extends CI_Controller {

    function index(){
        $this->login();
        //redirect('membro/login');;;
    }

    function login(){
        $this->load->view('membro/login');
    }
    
    function logout(){
	$this->session->sess_destroy();
	redirect('membro/login');
    }
    
    function completaLogin(){
        $this->load->model('membroModel');
        
        // Pega os dados inseridos nos inputs da tela de login
        $login = $this->input->post('login');
        $senha = md5($this->input->post('senha')); // A senha já é criptografada para MD5 aqui
        
        if(!$this->membroModel->testaLogin($login)){ //testa se o LOGIN é existente
            $this->session->set_userdata('erro', 'Esse login não é existente');            
            redirect('membro/login');
        } else {
            $usuario = $this->membroModel->testaSenha($login, $senha); //se o Login existe, vê se a senha existiu
            if(!$usuario){
                $this->session->set_userdata('erro', 'A senha está incorreta');
                redirect('membro/login');
            } else {
                $this->session->set_userdata('id', $usuario->id);
                $this->session->set_userdata('nome', $usuario->nome);
                $this->session->set_userdata('cargo_id', $usuario->cargo_id);
                $this->session->set_userdata('diretoria_id', $usuario->diretoria_id);
                
                redirect('membro/decideHome');
            }
        }
    }
    
    function decideHome(){
        $this->estaLogado();
        $tipo = $this->session->userdata('cargo_id');
        
        switch ($tipo){
            case 6: redirect('membro/homeCoordenador'); break;
            default: redirect('relatorio/listarAtas'); break;
        }
    }
    
    function dataUS($data){
	if (!empty($data)){
            $p_dt = explode('/',$data);
            $data_sql = $p_dt[2].'-'.$p_dt[1].'-'.$p_dt[0];
            return $data_sql;
	}
    }
    
    function somaData($data, $dias){
        list($ano, $mes, $dia) = explode('-', $data);
        return mktime(0, 0, 0, $mes, $dia + $dias, $ano);
    }
    
    // STATUS
    // 1 -> OK
    // 2 -> Realizar Relatório
    // 3 -> Atrasado
    function geraStatus($data){
        $data = $this->dataUS($data);
        $antecipado = $this->somaData($data, 10);
        $prazo = $this->somaData($data, 15);
        $hoje = strtotime("now");
        if($hoje < $antecipado ){
            return 1;
        } else{
            if(($hoje >= $antecipado)&&($hoje <= $prazo)){
                return 2;
            } else{
                return 3;
            }
        }
    }
    
    function defineNomeUsuario(){
        $nome = $this->session->userdata('nome');
        $pos = strripos($nome, ' ');
        $nome = substr($nome, 0, $pos);
        return $nome;
    }
    
    function reuneAtas(){
        $this->load->model('relatorioModel');
        $diretoria = $this->session->userdata('diretoria_id');
        $cargo = $this->session->userdata('cargo_id');
        return $this->relatorioModel->getAtas($diretoria, $cargo);
    }
    
    function homeCoordenador(){
        $this->estaLogado();
        $this->load->model('relatorioModel');
        $this->load->model('membroModel');
        
        $dados['nomeUsuario'] = $this->defineNomeUsuario();
        $dados['projetos'] = $this->relatorioModel->getProjetos();
        foreach($dados['projetos'] as $projeto){
            $projeto->gerente = $this->membroModel->getMembro($projeto->gerente_id)->nome;
            $projeto->status = $this->geraStatus($projeto->ultimo_relatorio);
        }
        $dados['atas'] = $this->reuneAtas();
        $this->load->view('membro/homeCoordenador', $dados);
    }
    
    function homeDiretor(){
        $this->estaLogado();
        
        $this->load->view('membro/homeDiretor');
    }
    
    function homeMembro(){
        $this->estaLogado();
        $this->load->view('relatorio/homeMembro');
    }
    
    function estaLogado(){
        $id = $this->session->userdata('id');
        if($id == null){
            $this->session->set_userdata('erro', 'Sua sessão expirou!');
            redirect('membro/login');
        }
    }
    
    function cadastrarMembro(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        
        $dados['diretorias'] = $this->apoioModel->dropdownDiretorias();
        $dados['cargos'] = $this->apoioModel->dropdownCargos();
        
        $this->load->view('membro/cadastrarMembro', $dados);
    }
    
    function cadastrandoMembro(){
        $this->estaLogado();
        $this->load->model('membroModel');
        
        $dados['nome'] = $this->input->post('nome');
        $dados['email'] = $this->input->post('email');
        $dados['diretoria_id'] = $this->input->post('diretoria');
        $dados['cargo_id'] = $this->input->post('cargo');
        $dados['login'] = $this->input->post('login');
        $dados['senha'] = md5($this->input->post('senha'));
        
        $this->membroModel->cadastrarMembro($dados);
        
        redirect('membro/listarMembros');
    }
    
    function listarMembros(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        
        $dados['membros'] = $this->membroModel->getMembros();
        
        foreach ($dados['membros'] as $membro){
            $membro->cargo = $this->apoioModel->getCargo($membro->cargo_id)->cargo;
            $membro->diretoria = $this->apoioModel->getDiretoria($membro->diretoria_id)->diretoria; 
        }
        
        $this->load->view('membro/listarMembros', $dados);
    }
    
    function editarMembro(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $this->load->model('apoioModel');
        $id = $this->uri->segment(3);
        
        $dados['membro'] = $this->membroModel->getMembro($id);
        $dados['diretorias'] = $this->apoioModel->dropdownDiretorias();
        $dados['cargos'] = $this->apoioModel->dropdownCargos();
        
        
        $this->load->view('membro/editarMembro', $dados);
    }
    
    function editandoMembro(){
        $this->estaLogado();
        $this->load->model('membroModel');
        
        $dados['id'] = $this->input->post('id');
        $dados['nome'] = $this->input->post('nome');
        $dados['login'] = $this->input->post('login');
        $dados['email'] = $this->input->post('email');
        $dados['diretoria_id'] = $this->input->post('diretoria');
        $dados['cargo_id'] = $this->input->post('cargo');
        
        $this->membroModel->editarMembro($dados);
        
        redirect('membro/listarMembros');
    }
    
    function editarSenha(){
        $this->load->view('membro/editarSenha');
    }
    
    function editandoSenha(){
        $this->load->model('membroModel');
        $dados['id'] = $this->session->userdata('id');
        $dados['senha'] = md5($this->input->post('senha'));
        
        $this->membroModel->editarMembro($dados);
        
        redirect('membro/decideHome');
    }
    
    function excluirMembro(){
        $this->estaLogado();
        $this->load->model('membroModel');
        $id = $this->uri->segment(3);
        
        $this->membroModel->excluirMembro($id);
        return true;
    }
    
    function visualizarMembro(){
        $this->estaLogado();
        $this->load->model('apoioModel');
        $this->load->model('membroModel');
        $id = $this->uri->segment(3);
        
        $dados['membro'] = $this->membroModel->getMembro($id);
        $dados['membro']->diretoria = $this->apoioModel->getDiretoria($dados['membro']->diretoria_id)->diretoria;
        $dados['membro']->cargo = $this->apoioModel->getCargo($dados['membro']->cargo_id)->cargo;
        $dados['projetos'] = $this->membroModel->getProjetosMembro($id);
        
        $this->load->view('membro/visualizarMembro',$dados);    
    }
}
?>    